在vs code 开发工具中命令行输入:
第一种用法: 分开输入。先输入 tsc 文件名称.ts
; 然后再输入 node 文件名称.js
;
第二种用法: 使用&&
一次输入。 tsc 文件名称.ts; && node 文件名称.js
.
TypeScript 通过 tsc 文件名称.ts 命令编译生成 JavaScript ,然后使用命令: node 文件名称.js
类型
错误用法:
function print(str:string){
if(typeof(str)=="string"){
console.log(str);
}
}
print(124); //编写中就提示错误
print("123ts")
如果出现如下错误:
- Overload signature is not compatible with function implementation. 重载签名与函数实现不兼容。如代码:declare function print(): void;(翻译:声明函数print() 无效的.)
- Overload signatures must all be ambient or non-ambient. 重载签名必须全部为环境或非环境。
- Argument of type ‘1234’ is not assignable to parameter of type ‘string’. “1234”类型的参数不能分配给“string”类型的参数。
解决方案:
- 更改函数名称:print() -> pr();
- 在pr() 中输入正确类型;
如下代码:
//写法一:
function pr(str:string){
if(typeof(str)=="string"){
console.log(str);
}
}
pr("123ts")
//写法二:
function pr(str:string){
console.log(str);
}
pr("123ts")
以四则运算为例,介绍类型, 注意:
- 参数有类型, 如:
function add(parameter1: number, parameter2: number){...}
- 返回值也有类型, 如:
function add(...):number {...}
;
如下代码:
//加法
function add(parameter1: number, parameter2: number):number {
let additionResult = parameter1 + parameter2;
return additionResult;
}
//减法
function sub(parameter1: number, parameter2: number):number {
let subtractionResult = parameter1 - parameter2;
return subtractionResult;
}
//乘法
function mul(parameter1: number, parameter2: number):number{
let multiplicationResult:number = parameter1 * parameter2;
return multiplicationResult;
}
//除法
function div(parameter1: number, parameter2: number):number {
let divisionResult = parameter1 / parameter2;
return divisionResult;
}
console.log(add(22, 11));
console.log(sub(22, 11));
console.log(mul(22, 11));
console.log(div(22, 11));
类(Class)
类就是把相同特性放在类里面.
class fruits {
m_name: string;
m_price: number;
m_weights: string;
//构造函数
constructor(name: string, price: number, weights: string) {
this.m_name = name;
this.m_price = price;
this.m_weights = weights;
}
//打印获取信息
printf() {
console.log("水果名称:" + this.m_name);
console.log("价格:" + this.m_price);
console.log("重量:" + this.m_weights);
}
}
//传参并赋值给创建变量
var orange = new fruits("橘子", 15, "650g");
var apple = new fruits("苹果", 30, "1000g");
//该变量的结果打印出来
orange.printf();
apple.printf();
有点类似JavaScript 的闭包做法:
<script>
function orange(index){
var name = index;
return function fruits(){
console.log("水果名称:" + name);
}
}
//接收返回值函数
var result = orange('橘子')
//打印返回值的结果
console.log(result());
</script>