-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
TypeScript #7
Comments
{
"files": [
"./some/file.ts"
],
"include": [
"./folder"
],
"exclude": [
"./folder/**/*.spec.ts",
"./folder/someSubFolder"
]
}
|
class Foo {}
interface Bar {}
type Bas = {};
// 类型注解
let foo: Foo;
let bas: Bas;
// 变量
const bar = Bar // Error: "cannot find name 'Bar'" 注意: class的类型声明,同时又提供了一个变量到变量声明空间
|
模块全局模块在一个新的ts文件写下代码,将会处于全局命名空间中 文件模块当文件中含有import 或者export 时,文件中将创建一个文件作用域 模块路径有两种不同的模块:
重写类型的动态查找通过 declare module 'foo' {
// some variable declarations
export var bar: number;
} |
类型泛型不依赖对象的实际类型,但是在变量本身强制提供约束
联合类型属性为多种类型之一 : 交叉类型继承不同对象的功能 元祖类型
类型别名
|
interface 接口接口通过声明进行扩展 // Lib a.d.ts
interface Point {
x: number,
y: number
}
declare const myPoint: Point
// Lib b.d.ts
interface Point {
z: number
}
// Your code
myPoint.z // Allowed! |
前言本次分享内容从TS的配置说明到写法实际案例优化,希望能对为实际写ts代码提供一点点🤏帮助,下面我们正式开始,首先为只是知道ts是什么的同学简单介绍一下ts能做什么以及成本:
综合来看,这些优点对业务和开发都是很有帮助的。 当然,引入新的东西往往也有很多成本:
ts的校验是有很大的兼容范围的,甚至可以简单到将后缀js改成ts,我们可以结合实际情况判断是否项目需要引用以及具体的严格程度要求,在具体的代码中则最好缩窄ts的限制,避免运行时错误 接下来从编译逻辑、ts配置帮助我们了解下还没写代码之前的打底知识,磨刀不误砍柴工,最后通过案例讲一下项目中经常出现但可以优化的地方; 如何工作与项目配置TypeScript 的类型提示是通过 TypeScript 的语言服务实现的。TypeScript 的语言服务是一个独立的后台进程,用于为编辑器提供关于 TypeScript 代码的分析和提示信息。 compilerOptions
项目ts方法改进
最好就还是在定义阶段将变量写明,另外可以定义好数据类型,并做类型推断断言, 确保类型安全
reference |
通过tsconfig.json定义ts编译选项
The text was updated successfully, but these errors were encountered: