1.TypeScript-Basic
2.TypeScript interface
3.Typescript-module(1)
4.TypeScript Modules(2)
5.Typescript tsconfig
6.TypeScript Functions
7.Typescript Classjavascript
今天講的很簡單,是一些很基礎的東西,但它們會讓你對typescript眼前一亮java
類型typescript
booleansegmentfault
number數組
stringthis
array設計
tuple+聯合類型(額,這個很難懂,後面有解釋)code
enumip
any字符串
void
OK,如何聲明一個變量的類型呢 ?
屁股後面加:
let isDone:boolean = false;
let decLiteral: number = 6;
let name: string = "bob";
let list: number[] = [1, 2, 3];
let x: [string, number];
enum Color {Red, Green, Blue};let c: Color = Color.Green;
let notSure: any = 4;
問題
關於強制類型轉換的問題
若是你使用過c語言,那你必定知道,兩個兼容類型的轉換須要使用
char* a = (char*)10000;
,那typescript中any兼容全部類型,因此:
let someValue: any = "this is a string"; let strLength: number = (<string>someValue).length;
記住:()是c語言,<>是typescript
還有一種寫法:
let someValue: any = "this is a string"; let strLength: number = (someValue as string).length;
關於tuple+聯合類型
需求:表示一個只有兩個元素,且一個字符串一個數字的數組(特定元素數量和類型)
let x: [string, number];
咱們也叫他tuple,其實它叫什麼無所謂,重要的是:
元素數量固定
元素類型肯定
// Declare a tuple type let x: [string, number]; // Initialize it x = ['hello', 10]; // OK // Initialize it incorrectly x = [10, 'hello']; // Error
你說是數量固定的,我非要越界呢?
不得不說,很無語的設計,越界以後就是聯合類型
x[3] = 'world'; // OK, 字符串能夠賦值給(string | number)類型
越界了,可是沒報錯。其實只要你後面只放string和number類型都沒錯,由於越界以後變類型。變成聯合類型嘍!