喜欢就关注我们吧!
TypeScript 4.1 已正式发布。
使用以下命令通过 npm 获取:
npm install -D typescript 新版本带来了不少新功能:新的检查标志、提升编辑器效率和速度。
- 引入字符串模板类型
function setVerticalAlignment(pos: "top" | "middle" | "bottom") {// ...}setVerticalAlignment("middel");// ~~~~~~~~// error: Argument of type '"middel"' is not assignable to// parameter of type '"top" | "middle" | "bottom"'.
- 在映射类型中加入键值重映射 (Key Remapping)
type Options = {
[K in "noImplicitAny" | "strictNullChecks" | "strictFunctionTypes"]?: boolean
};// same as// type Options = {// noImplicitAny?: boolean,// strictNullChecks?: boolean,// strictFunctionTypes?: boolean// };
- 允许递归条件类型
type ElementType<T> =
T extends ReadonlyArray<infer U> ? ElementType<U> : T;function deepFlatten<T extends readonly unknown[]>(x: T): ElementType<T>[] {
throw "not implemented";
}
// All of these return the type 'number[]':
deepFlatten([1, 2, 3]);
deepFlatten([[1], [2, 3]]);
deepFlatten([[1], [[2]], [[[3]]]]);
- 新增检查索引访问功能 noUncheckedIndexedAccess
interface Options {
path: string;
permissions: number;// Extra properties are caught by this index signature.[propName: string]: string | number;
}function checkOptions(opts: Options) {
opts.path // stringopts.permissions // number// These are all allowed too!// They have the type 'string | number'.opts.yadda.toString();
opts["foo bar baz"].toString();
opts[Math.random()].toString();
}
-
使用 paths 启用路径映射时可以不指定 baseUrl
-
checkJs 现在默认意味着 allowJs ,不再需要同时设置 checkJs 和 allowJs
-
支持 React 17 的 jsx 和 jsxdev 功能
-
编辑器支持 JSDoc @see Tag
// @filename: first.tsexport class C { }// @filename: main.tsimport * as first from './first';/**
* @see first.C
*/function related() { }
微信聊天窗口回复”1123“查看发布公告。