Skip to content

AlexZhang11/Hello-Typescript

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TypeScript有关

一些相关命令

前提:安装ts npm install -g typescript ,安装node

tsc index.ts(要转换的ts文件名) 可以编译生成对应js文件

随时监控编译ts文件可以使用 tsc -w index.ts

node index.js 可以在控制台运行出编译后的ts文件的内容

直接与运行ts文件不编译可以安装ts-node npm install -g ts-node 执行ts-node index.ts 文件

随时监控编译运行ts文件可以安装nodemon npm install -g nodemon 运行 nodenom --exec ts-node index.ts

如果要在class里面使用set get关键字 要先按照es5或6编译tsc --target es5(es6) index.ts 或者加一个配置文件tsconfig.json

配置内容为

{
    "compilerOptions":{
        target:"es5"
    },
    "include":[
        "*.ts"
    ]
}

运行时使用tsc&&node.index.js即可

tsc--init 可以初始化tsconfig.json文件

tsc +文件名会忽略tsconfig.json的配置文件。tsc不会

npm init 会生成初始的package.json文件

总结interface和type的区别

1 二者都可以定义类型

2 interface可以使用extends/implements,type不行(接口继承一个或多个接口,类实现一个或多个接口)

'
interface Car{
    name:string
}
interface Bike{
    mile:string 
}
interface DZ extends Car,Bike{

}
class BT implements Car,Bike{

}

3 二者都可以对一个对象添加几个type 或者interface,但是interface 可以重复命名,type不行

type P = {
    name:string,
    print():void,
}
type Car  = {
    mile:string
}
interface DZ{
    age:number
}
interface bike{

}
interface DZ{
    age1:number
}
let o:P&Car&DZ&bike={
    name:'1',
    mile:'111',
    print:function(){

    },
    age:1,
    age1:1
}

4 type 可以直接作用于基本类型,联合类型,interface 不行

type Name = string; // 基本类型
type NameResolver = () => string; // 函数
type NameOrResolver = Name | NameResolver; // 联合类型(在interface中其实就是接口继承接口来实现)

function getName(n: NameOrResolver): Name {
    if (typeof n === 'string') {//为string时
        return n;
    } else {//为函数时
        return n();
    }
}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published