JavaScript Devs的打字稿5.0
#javascript #news #typescript #jsdoc

TypeScript 5.0版本带来了对我们使用JavaScript/jsdoc的我们的大量新闻

这次我们获得了两个全新的关键字,@satisfies@overload,这是迈向与打字稿本身的特征奇偶校验的重要一步。

最重要的是,我们还得到了其他一些好东西,我将在本文的结尾进行。

satisfies-非损害类型验证

当我们有一块data时,我们要确保是类型Foodata,我们会做:

/** @type {Foo} */
const abc = data;

如果Foo具有.type的属性.type,那么我们将不知道两个abc中的哪个都会有,无论我们知道data.typedata.typebike

我们现在可以写:

/** @satisfies {Foo} */
const abc = data;

这将确保我们只是确保abc满足Foo的类型,它不会使我们失去data的任何细节。

有关更多信息,请查看the announcement post at the TypeScript blog

@overload启用功能在JS中超载

打字稿博客上的公告帖子总结了一个很好:

每个带有@overload标签的jsdoc评论被视为以下功能声明的独特过载。

换句话说,我们现在可以轻松地指定何时。第二个参数可以或不能指定为函数。

这是很长一段时间以来在TS中可能存在的事情,现在我们也可以在JS中做到这一点。非常适合几次可以使代码更可读的时间。

有关更多信息,请查看the announcement post at the TypeScript blog

其他值得注意的消息

新的koude16非常适合当我们需要在导入时指定文件扩展名(我在看您的ESM),并且您需要导入.d.ts文件(这是有用的东西,这是有用的东西,或者很难写下您的JSDOC中的类型)。仅在启用--noEmit--emitDeclarationOnly时允许,这对于所有JS项目都是如此。

另外:对multiple files in koude20的支持可能会有所帮助,尤其是在与TS项目共享共同配置时。

结论

我爱上了@satisfies,并且会充分使用它。我可能还会将--allowImportingTsExtensions添加到我共享的koude23配置的未来版本中,可能最终会重组一点以启用多个extends

前往voxpelli/types-in-js,并了解有关使用JS类型的更多信息,并分享your favorite additions1111