Skip to content
This repository has been archived by the owner on Jan 19, 2019. It is now read-only.

[META] TSLint Compatibility #5

Closed
20 of 31 tasks
dannyfritz opened this issue Sep 12, 2016 · 31 comments
Closed
20 of 31 tasks

[META] TSLint Compatibility #5

dannyfritz opened this issue Sep 12, 2016 · 31 comments

Comments

@dannyfritz
Copy link
Contributor

dannyfritz commented Sep 12, 2016

Please view the ROADMAP instead.


Outdated List:

@dannyfritz dannyfritz changed the title TSLint Compatibility Checklist TSLint Compatibility Oct 13, 2016
@dannyfritz
Copy link
Contributor Author

@weirdpattern Any of the unchecked items are up for grabs 😄 . My work got unexpectedly busy and I won't be active on this for a little while.

@weirdpattern
Copy link
Collaborator

@dannyfritz alright, I will start working on some of these... still deciding which ones though...
I will let you know, thanks!

@weirdpattern
Copy link
Collaborator

I'm working on no-parameter-properties and no-internal-modules...

@dannyfritz
Copy link
Contributor Author

Huge shoutout to @weirdpattern for taking us over the 50% line! 🎉 🎉 🎉 🎉 🎉 🎉

@weirdpattern
Copy link
Collaborator

weirdpattern commented Jan 25, 2017

Update

no-parameter-properties is currently blocked due to TypeScript Parser bug 143. I have a solution, but I'm waiting on @nzakas to confirm how he wants to proceed.

no-inferrable-types is currently blocked due to TypeScript Parser bug 146. PR is being reviewed.

So, working on member-ordering for now =]

@dannyfritz
Copy link
Contributor Author

@weirdpattern can you add the compatibility section into #23?

@weirdpattern
Copy link
Collaborator

of course, not in front of my computer at the moment, but will do it tonight...

@weirdpattern
Copy link
Collaborator

@dannyfritz done!

@weirdpattern
Copy link
Collaborator

Hi @dannyfritz can you mark member-ordering as completed?
It was merged this afternoon... Thanks!

@dannyfritz
Copy link
Contributor Author

dannyfritz commented Aug 10, 2017

Thanks for your work!

@j-f1
Copy link
Collaborator

j-f1 commented Aug 12, 2017

How about class-name (TSLint rule source)?

@weirdpattern
Copy link
Collaborator

All, I'm going to start working on no-parameter-properties.

@weirdpattern
Copy link
Collaborator

Now working on no-mergeable-namespace and no-non-null-assertion...

@corbinu
Copy link
Contributor

corbinu commented Aug 19, 2017

@weirdpattern sweet thanks so much for all the work your doing!

@weirdpattern
Copy link
Collaborator

I was reviewing the remaining rules, I believe #48 is a superset of type-literal-delimiter... I mean it does something similar, and includes interfaces too... thoughts?

@dannyfritz
Copy link
Contributor Author

Yes, I do agree the functionality is met with member-delimiter-style. Thanks!

@dannyfritz
Copy link
Contributor Author

dannyfritz commented Aug 20, 2017

It is worth someone else going through the TSLint rules and seeing if you agree I grabbed all the relevant TS specific ones. https://palantir.github.io/tslint/rules/

They change pretty frequently themselves. So it is a moving target. 🎯

@j-f1

This comment has been minimized.

@weirdpattern
Copy link
Collaborator

weirdpattern commented Aug 20, 2017

Hey @j-f1, this is great! One question though, some of these are common to both JavaScript (es5, es6, etc) and TypeScript, so not sure if they should be defined here or at the eslint level... I know eslint already offers some rules to validate jsdoc and to restrict syntax like for-in...

By the way, I haven't really looked at all the rules, this was something that just popped into my head... still needs some analysis before we can decide anything ☺️

@j-f1
Copy link
Collaborator

j-f1 commented Aug 20, 2017

The difference between ESLint’s valid-jsdoc and TSLint’s jsdoc-format is that TSLint just validates the syntax; whereas ESLint requires defining parameter and return type info.

@dannyfritz
Copy link
Contributor Author

It might be worth adding those to this list and opening a pr in eslint to close it?

@dannyfritz
Copy link
Contributor Author

I think the line that should be drawn for including in this repo is: can this rule be used without typescript?

@macklinu
Copy link
Collaborator

no-non-null-assertion can be checked in the original list now that #108 has been merged.

43081j added a commit to 43081j/eslint-plugin-typescript that referenced this issue Mar 26, 2018
@dannyfritz dannyfritz changed the title TSLint Compatibility [META] TSLint Compatibility Jun 28, 2018
@nevir
Copy link
Contributor

nevir commented Oct 3, 2018

no-floating-promises would be a huge win, and seems like it would require TypeScript's knowledge of an expression's return type

@dannyfritz
Copy link
Contributor Author

TSLint has changed since I originally made this issue a few times. If someone wants to do the research to corroborate where we are with the moving target I'd gladly update the original list.

@weirdpattern
Copy link
Collaborator

Just a thought...

Would it be better to move all these pending rules to the README.md or maybe ROADMAP.md file?

I think it will give users a clear idea of where we are heading without having to search this info in a bug?

@armano2
Copy link
Contributor

armano2 commented Dec 12, 2018

i'm going to work now on no-misused-new

@armano2
Copy link
Contributor

armano2 commented Dec 14, 2018

Updated list

With Type Info

generator

// go to https://palantir.github.io/tslint/rules/ and tun this script

function generate () {
var items = Array.from(document.querySelectorAll('.rules-list li'))
    .map((item) => {
        return {
            tsOnly: Boolean(item.querySelector('.rule-features .feature-ts-only')),
            fixer: Boolean(item.querySelector('.rule-features .feature-fixer')),
            requireType: Boolean(item.querySelector('.rule-features .feature-requires-type-info')),
            name: item.querySelector('strong')
        }
    })
    .filter(item => item.tsOnly && item.name)
	.sort(item => item.requireType ? 1 : -1)
	.map((item) => { item.name = item.name.innerHTML; return item })

return `
${items.filter(item => !item.requireType).map((item) => { return `- [ ] [${item.name}]` }).join('\n')}

### With Type Info
${items.filter(item => item.requireType).map((item) => { return `- [ ] [${item.name}]` }).join('\n')}

${items.map((item) => { return `[${item.name}]: https://palantir.github.io/tslint/rules/${item.name}/` }).join('\n')}
`
}
generate()

@j-f1 j-f1 pinned this issue Dec 15, 2018
@j-f1
Copy link
Collaborator

j-f1 commented Dec 15, 2018

See #228

@bradzacher
Copy link
Owner

Thanks to @j-f1, we can now track this via https://github.com/bradzacher/eslint-plugin-typescript/blob/master/ROADMAP.md

Unless anyone has any objections, I'll close this issue.

@dannyfritz
Copy link
Contributor Author

No objection from me

@j-f1 j-f1 closed this as completed Dec 16, 2018
@bradzacher bradzacher unpinned this issue Dec 17, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

9 participants