Hello TypeScript

我們從一個簡單的例子開始。
將以下程式碼複製到 hello.ts 中:
function sayHello(person: string) {
return 'Hello, ' + person;
}
let user = 'Tom';
console.log(sayHello(user));
然後執行
tsc hello.ts
這時候會產生一個編譯好的檔案 hello.js
function sayHello(person) {
return 'Hello, ' + person;
}
var user = 'Tom';
console.log(sayHello(user));
TypeScript 中,使用 : 指定變數的型別,: 的前後有沒有空格都可以。
上述例子中,我們用 : 指定 person 引數型別為 string。但是編譯為 js 之後,並沒有什麼檢查的程式碼被插入進來。
TypeScript 只會進行靜態檢查,如果發現有錯誤,編譯的時候就會報錯。
let 是 ES6 中的關鍵字,和 var 類似,用於定義一個區域性變數,可以參閱 let 和 const 命令
下面嘗試把這段程式碼編譯一下:
function sayHello(person: string) {
return 'Hello, ' + person;
}
let user = [0, 1, 2];
console.log(sayHello(user));
編輯器中會提示錯誤,編譯的時候也會出錯:
index.ts(6,22): error TS2345: Argument of type 'number[]' is not assignable to parameter of type 'string'.
但是還是產生了 js 檔案:
function sayHello(person) {
return 'Hello, ' + person;
}
var user = [0, 1, 2];
console.log(sayHello(user));
TypeScript 編譯的時候即使報錯了,還是會產生編譯結果,我們仍然可以使用這個編譯之後的檔案。
如果要在報錯的時候終止 js 檔案的產生,可以在 tsconfig.json 中配置 noEmitOnError 即可。關於 tsconfig.json,請參閱官方手冊中文版)。