TypeScript 5.1 发布了首个 Beta 测试版。
主要变化
- 更智能地检查未定义返回值的函数(
undefined
-Returning Functions)
旧代码
function foo() {
// no return
}
// x = undefined
let x = foo();
//fine - we inferred that 'f1' returns 'void'
function f1() {
// no returns
}
//fine - 'void' doesn't need a return statement
function f2(): void {
// no returns
}
//fine - 'any' doesn't need a return statement
function f3(): any {
// no returns
}
//error!
// A function whose declared type is neither 'void' nor 'any' must return a value.
function f4(): undefined {
// no returns
}
新代码
//Works in TypeScript 5.1!
function f4(): undefined {
// no returns
}
//Works in TypeScript 5.1!
takesFunction((): undefined => {
// no returns
});
//Works in TypeScript 5.1!
takesFunction(function f() {
// ^ return type is undefined
// no returns
});
//Works in TypeScript 5.1!
takesFunction(function f() {
// ^ return type is undefined
return;
});
- Getters 和 Setters 类型之间没有限制
- JSX 元素和 JSX Tag 类型之间的解耦类型检查
- 命名空间的 JSX 属性
- 支持在 Module Resolution 中查询
typeRoots
- Linked Cursors for JSX Tags
- 对
@param
JSDoc Tags 自动补全 Snippet - 其他优化
- 破坏性变更
详情查看发布公告。