---
# System prepended metadata

title: TypeScript 執行 Hello TypeScript
tags: [TypeScript]

---

---
tags: TypeScript
---
# TypeScript 執行 Hello TypeScript


## 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 只會進行靜態檢查，如果發現有錯誤，編譯的時候就會報錯。**

報錯範例:
```
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```，請參閱[官方手冊](https://www.typescriptlang.org/docs/handbook/tsconfig-json.html)。


[來源:TypeScript新手指南](https://willh.gitbook.io/typescript-tutorial/introduction)