[英]eslint rule to enforce Typescript optional parameter function syntax
I'd like to use eslint to enforce the succinct syntax for optional function parameters .我想使用 eslint 来强制执行可选函数参数的简洁语法。
I would like to use the short ?
我想用短的
?
syntax in this case.在这种情况下的语法。 That is:
那是:
// Expected syntax
function myFunct(optionalInput?: number): void {...}
// Undesired syntax
function myFunct(optionalInput: number | undefined): void {...}
Is there any way to enforce this with eslint?有什么办法可以用 eslint 强制执行吗?
You needn't write a custom lint rule or anything of the sort for this!您无需为此编写自定义 lint 规则或任何类似的东西! There's a helpful FAQ article on the TypeScript-ESLint website that covers this:
TypeScript-ESLint 网站上有一篇有用的常见问题解答文章,涵盖了这一点:
https://typescript-eslint.io/docs/linting/troubleshooting#how-can-i-ban-specific-language-feature https://typescript-eslint.io/docs/linting/troubleshooting#how-can-i-ban-specific-language-feature
You can use the playground to deduce the correct AST selector您可以使用 Playground 推导出正确的 AST 选择器
https://typescript-eslint.io/play#showAST=es https://typescript-eslint.io/play#showAST=es
For example - you'll want to ban FunctionDeclaration > Identifier.params > TSTypeAnnotation > TSUnionType:has(TSUndefinedKeyword)
例如 - 你会想要禁止
FunctionDeclaration > Identifier.params > TSTypeAnnotation > TSUnionType:has(TSUndefinedKeyword)
eg - https://typescript-eslint.io/play/#ts=4.5.2&sourceType=module&showAST=es&code=PQKgUABBCmDOA2BLAdgFwsg9gWgE51V0QGNVoATbWATzQEMAPALggG1IpOByaXXTXFwA0HThADeosRFjR40UgJZcAYgFdkpRJmQARBfDq46qbcggA+CAEly0NIgBmiXkyyoAFK0wAHUzrp4AF5CNWgAXQBKADofIzoAW1hLCAAVAGVU6h9oAEFkdxMzFIyAVWQzLJymAAs6WA8y5DtnZAoAaWhqAHcBckjhKTEEuFg6AHNoZTVZCDpzX39kQIgffh8IFFgyOnIAQkHpCABfDnCwEGAwMEcNLR0IBOp1TU8pRbNA62QfNVQARhYyDUCQARrwRGIPgF4N9fqgAExAkHg3AQAA+MkIKHGkM40OWsJ+fwAzMiwbwMRANC0UBQ8VACV9iagACwAfnJqKpNOgrXpYEiLAAbphEOQJCcgA&rules=N4XyA&tsConfig=N4XyA例如- https://typescript-eslint.io/play/#ts=4.5.2&sourceType=module&showAST=es&code=PQKgUABBCmDOA2BLAdgFwsg9gWgE51V0QGNVoATbWATzQEMAPALggG1IpOByaXXTXFwA0HThADeosRFjR40UgJZcAYgFdkpRJmQARBfDq46qbcggA+CAEly0NIgBmiXkyyoAFK0wAHUzrp4AF5CNWgAXQBKADofIzoAW1hLCAAVAGVU6h9oAEFkdxMzFIyAVWQzLJymAAs6WA8y5DtnZAoAaWhqAHcBckjhKTEEuFg6AHNoZTVZCDpzX39kQIgffh8IFFgyOnIAQkHpCABfDnCwEGAwMEcNLR0IBOp1TU8pRbNA62QfNVQARhYyDUCQARrwRGIPgF4N9fqgAExAkHg3AQAA+MkIKHGkM40OWsJ+fwAzMiwbwMRANC0UBQ8VACV9iagACwAfnJqKpNOgrXpYEiLAAbphEOQJCcgA&rules=N4XyA&tsConfig=N4XyA
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.