TypeScript 剥离类型应该包括ts-ignore注解

92vpleto  于 4个月前  发布在  TypeScript
关注(0)|答案(5)|浏览(54)

TypeScript版本: 3.8最新,playground
搜索词: 删除ts-ignore注解
代码:

// this is a comment that should be kept
const message: string = 'hello world';
// the below ts-ignore comment should be removed, since it has no meaning in a non-TS context
// @ts-ignore
console.log(message);

预期行为:

ts-ignore注解会被去除,其他注解会被保留。

实际行为:

所有注解都会被保留,包括ts-ignore注解。

**Playground链接:**https://www.typescriptlang.org/play/#code/PTAEBcAsEsGdTqAhqAxgewLaYKYDtwJIlDZJ0BXAGwBNQAjHUAaxwAdwAoDPWQ3WLCQBzHAC5QfAE7Q8w0AF5QAckg4qVdKADu6KbWUBuTiCJNGm7RFgBaaMLx6mGbPlLlqJsAAFwt+45SONzovOhUOAB0msIAFAJCogCUhkA
相关问题:

643ylb08

643ylb081#

我确实想指出,@ts-ignore 不必单独在一行上,你可以这样写:

declare function doThingWithNumber(val:number): void
// this is a comment that should be kept
declare const message: string | number;
// @ts-ignore because reasons that are still important to know once converted to plain JS.
doThingWithNumber(message);

我绝对不希望整行被删除,我认为保留整行比仅修改注解以仅删除@ts-ignore更有意义,尤其是考虑到其他编译器顺序如@eslint-disable-next-line仍然保留。

3pvhb19x

3pvhb19x2#

我不同意;ts-ignore是给tsc的指令,一旦tsc运行了,它就无关紧要了。额外的上下文是给ts-ignore的,并且在发出后也是无关紧要的。

6tr1vspr

6tr1vspr3#

eslint命令是针对eslint的,这些都不是typescript的职责。

frebpwbc

frebpwbc4#

我实际上很惊讶地在生成的.js文件中发现了@ts-expect-error评论。像@ts-ignore一样,这些在TypeScript代码之外毫无意义。

相关问题