TypeScript聯合型別
聯合型別表示取值可以為多種型別中的一種
如下所示
/**
* 聯合型別
*/
var muchtype:string|number="hello";
muchtype=1;
這一塊我們必須使用string或者number都支持的型別,那么下面我們可以進行呼叫擴展方法toString()
/**
* 聯合型別
* 注意:如果說我們使用字串的length屬性那么我們需要注意,如果是number型別是不支持的
* 這一塊我們必須使用string或者number都支持的型別,那么下面我們可以進行呼叫擴展方法toString()
*
*/
var muchtype:string|number="hello";
muchtype="";
muchtype=1;
console.log(muchtype.length)
console.log(muchtype.toString().length)
TypeScript中物件型別-介面
介面可以描述一種抽象的行為,也可以描述物件的結構形狀,當然我們也需要遵守介面命名規范,介面一般首字母大寫 當然在一些語言上面建議介面的名稱前綴加上I前綴
interface IStudent{
name:string
}
/**
* 介面規范了name屬性是必須要寫的所以我們要通過第四行代碼進行使用
* 介面起到一個約束作用約束我們這些屬性欄位必須一對一的撰寫.
*/
var obj1:IStudent;
obj1="11";
obj1=1;
obj1={name:"11"};
如果說我們進行修改介面如下所示
interface IStudent{
name:string,
age:number
}
那么我們必須要給age進行賦值操作
obj1={name:"11",age:1};
可選型別nullable
interface IStudent
{
name:string,
age?:number //?為一個可空型別nullable 他是一個可有可無的,那么在下面我們可以不用對age進行賦值操作也不會出現例外
}
var obj2={name:"張三",age:1}
在我們屬性不確定的時候我們可以通過如下方式實作,any必須是任意型別,
因為當我們進行使用不確定屬性個數的時候會有局限性.
當然下面的屬性中比如說string number我們也可以使用聯合型別,這一塊我們后續可以根據實際需求進行變動即可
//屬性個數不確定的時候
interface IStudent{
name:string,
age?:number,
[propName:string]:any
}
var obj3:IStudent={name:"Mr.A",age:1,sex:"男",birthday:"2020-03-20"}
只讀屬性 readonly
interface IStudent{
name:string,
readonly age:number
}
var obj3:IStudent={name:"Mr.A",age:18}
obj3.name="Mr.B";
obj3.age=19;
通過如上代碼我們可以發現當我們對obj3.age進行賦值的時候會發現感知錯誤提示 如下所示

也就是說一旦我們賦初始值以后那么后面我們就不能將其進行修改了.
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/126446.html
標籤:JavaScript
上一篇:Vue 樣式系結、事件系結
