Typescript basic

TypeScript-Basic

typescript之旅

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類型都沒錯,由於越界以後變類型。變成聯合類型嘍!

相關文章
相關標籤/搜索