TypeScript 基礎類型和對象類型


// 基礎類型 null, undefined, symbol, boolean, void
const count: number = 123;
const teacherName: string = 'zina';

*:如果基礎類型是一行的,ts 能推斷出它的類型,如果是兩行就不一定了

let count; // let count: any
count = 123;

這個時候,ts 並不能推斷出它的類型

let count: number;
count = 123;

這才是正確的寫法



// 對象類型
const teacher: {
  name: string,
  age: number
} = {
  name: 'zina',
  age: 18
}
// 可以看到基礎類型很容易,對象類型是基礎類型結合起來的更復雜的類型

// 數組也屬於對象類型
const numbers: number[] = [1, 2, 3]
// 這種語法意思是 numbers 是一個數組,數組中的每一項必須是個 number 類型,里面任一一個改成字符串就會報錯

//
class Person {}
const zina: Person = new Person();
// zina 必須是一個 Person 類對應的對象

// 函數
const getTotal: () => number = () =>{
  return 123;
}
// getTotal 是一個函數,這個函數返回值是一個 number,具體函數的實現是后面的函數

總結:對象,數組,類,函數都屬於對象類型,在 ts 里面有兩種,基礎類型和對象類型

 
*: 擴展

函數的兩種寫法
/**
* 函數🉑️值是一個字符串類型,返回值是數字類型,字符串轉數字
* @param str
* 將鼠標放在 func 上面,可以看到參數,返回值是固定了
*/
const func = (str: string): number => {
return parseInt(str, 10);
}

// 函數的第二種寫法
const func1:(str: string) => number = (str) => {
return parseInt(str, 10);
}

 


// Date 類型
const date: Date = new Date();
=>
const date = new Date()
ts 能推斷出 Date 類型,可以不寫


// 其他的 case
const rawData = '{"name": "zina"}';
const newData = JSON.parse(rawData); // const newData: any

// JSON.parse 並不能推斷出后面的類型,如果用 JSON.parse 或其他內置函數,會遇到這種問題,需要類型注解
interface Person {
  name: 'string'
}
const rawData = '{"name": "zina"}';
const newData: Person = JSON.parse(rawData);

 


let temp = 123;
temp = '456';
// 這種寫法會報錯,但有時候就是想同一個變量后續可以賦值成字符串怎么整
let temp: number | string = 123;
temp = '456';
// 可以在聲明變量的時候加上 string 的類型,有種像或的語法,有可能是 number,也有可能是 string

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM