基本タイプtsではより多くのタイプがサポートされています let age: number = 10 // 数値 let firstName: string = '凉宸' // 文字列 let lastName: string = '凉宸' // 文字列 let isMary: boolean = true // ブール値 unde: undefined = undefined // 未定義 nu: null = null // null とします
値を割り当てるときは、定義されたデータ型に従って行う必要があります。そうしないと、次のエラーメッセージが表示されます。
あらゆるタイプ変数の型を決定できない場合は、任意の型として指定できます。 any 型に値を割り当てる場合、エラーを報告せずに任意の値を割り当てることができます。 isAny:any='any type any' とします 任意=520 いずれか=true isAny=null
あらゆるタイプの特性
let userName: any = '凉宸'; // 任意のプロパティにアクセスできます console.log(userName.name); console.log(ユーザー名.名前.firstName); // 任意のメソッドを呼び出すことができます userName.setName('David'); ユーザー名.setName('David').sayHello(); ユーザー名.name.setFirstName('David'); 配列配列内の要素の型を指定できます 年齢: 数値[] = [5, 20, 13, 14]とします let names: string[] = ['Liang Chen', 'Luffy', 'Ming Shiyin', 'Li Yangyong'] 配列のようなもの: クラス配列には、配列にあるメソッドがありません。tsc はこれら 2 つを自動的に識別できます。 引数 = [555,555,55] とします 関数lei(){ arr:数値=引数 } タプル基本的には配列に似ていますが、型は複数にすることができます arr:[number,string,boolean]=[520,'凉宸',true]とします。 値を割り当てるときは、型の順序を入力する必要があります。 要素は多いほうが少ないよりも良い arr:[number,string,boolean]=[520,'凉宸',true]とします。 arr.push('b') // OK arr.push(4) // OK arr.push(true) // OK console.log(arr) let arr:[number,string]=[520,'凉宸'] arr.push('b') // OK arr.push(4) // OK arr.push(true) // いいえ console.log(arr) インタフェース
効果:
インターフェースポイント ユーザー名:文字列|番号 パスワード:番号 } // 現時点では、tsc を実行しても対応する js コードは解析されません。この型は ts に固有であり、制約のみを示すためです。 インターフェースポイント ユーザー名:文字列|番号 パスワード:番号 } 値:ポイント={ ユーザー名:'[email protected]', パスワード:123456 } val:Point={とします ユーザー名:55555, パスワード:123456 } // この時点では両方が満たされ、tscが実行される // 制約なしで次のコードのみが表示されます js var 値 = { ユーザー名: '[email protected]', パスワード: 123456 }; var val = { ユーザー名: 55555, パスワード: 123456 }; オプション属性 IPerson インターフェイス型変数を作成する場合、変数に値を割り当てるときにインターフェイスで宣言された属性も存在している必要があります。そうでない場合はエラーが報告されます。 しかし、プロパティをオプションとして設定し、変数を作成するときに値を割り当てることができます インターフェースポイント ユーザー名:文字列|番号 パスワード:数字、 メールアドレス?:文字列 } 値:ポイント={ ユーザー名:'[email protected]', パスワード:123456 } val:Point={とします ユーザー名:55555, パスワード:123456 } 読み取り専用属性 インターフェースポイント ユーザー名:文字列|番号 パスワード:数字、 メールアドレス?:文字列, 読み取り専用アドレス:文字列 } 値:ポイント={ ユーザー名:'[email protected]', パスワード:123456、 住所:「保定」 } val:Point={とします ユーザー名:55555, パスワード:123456、 住所:「北京」 } 値.パスワード=65975222 値.アドレス = 'kkk' 関数tsの関数は戻り値の型を定義できる 定数値=():数値=>{ 戻り値 1 } 定数val=():文字列=>{ 戻り値 1 } 自己推論を入力する型を割り当てずに変数を定義すると、値に応じて推論されます。 値=5555とする 値='文字列' 結合タイプ(1つ以上選択)値:文字列|数値 値 = '凉辰' 値=520 値=true 型アサーション: 関数 get(データ:文字列|数値):数値{ const str = 文字列としてのデータ if(str.length){ str.lengthを返す }それ以外 { const num = 数値としてのデータ num.toString().lengthを返す } } console.log(get('凉宸')); コンソールログ(get(520));
タイプガード: 関数 get(データ:文字列|数値):数値{ if(データの種類==='文字列'){ データの長さを返す }それ以外 { data.toString().length を返す } } console.log(get('凉宸')); コンソールログ(get(520)); クラスクラス: クラス、ES6 構文は、js のオブジェクト指向の推進であり、クラスは単なる構文上の糖衣であり、基礎となる実装は依然として関数とプロトタイプに基づいています。
次の 3 つの修飾子を使用して、クラス内のメンバーのアクセス レベルを制御できます。
クラス Person { パブリック名:文字列 保護された年齢:番号 プライベートアドレス:文字列 コンストラクター(名前:文字列,年齢:数値,住所:文字列){ this.name=名前 this.age=年齢 this.address=住所 } 話す(){ console.log(`人:${this.name}---${this.age}---${this.address}`) } } const Children = new Person('子供',20,'宝定') 子ども.speak() //正常に出力できる クラス Person { パブリック名:文字列 保護された年齢:番号 プライベートアドレス:文字列 コンストラクター(名前:文字列,年齢:数値,住所:文字列){ this.name=名前 this.age=年齢 this.address=住所 } 話す(){ console.log(`人:${this.name}---${this.age}---${this.address}`) } } 子クラスはPersonを拡張します{ 言う(){ console.log(`child:${this.name}---${this.age}`) } } // const Children = new Person('子供',20,'宝定') // Children.speak() const children = new child('凉宸',20,'宝定') 子供たちが言う() 実行時にエラーも報告される クラス Person { パブリック名:文字列 保護された年齢:番号 プライベートアドレス:文字列 コンストラクター(名前:文字列,年齢:数値,住所:文字列){ this.name=名前 this.age=年齢 this.address=住所 } 話す(){ console.log(`人:${this.name}---${this.age}---${this.address}`) } } 子クラスはPersonを拡張します{ 言う(){ console.log(`child:${this.name}---${this.age}`) } } // const Children = new Person('子供',20,'宝定') // Children.speak() const children = new child('凉宸',20,'宝定') 子供たちが言う() クラス Person { パブリック名:文字列 保護された年齢:番号 プライベートアドレス:文字列 コンストラクター(名前:文字列,年齢:数値,住所:文字列){ this.name=名前 this.age=年齢 this.address=住所 } 話す(){ console.log(`人:${this.name}---${this.age}---${this.address}`) } } 子クラスはPersonを拡張します{ 言う(){ console.log(`child:${this.name}---${this.age}`) } } const Children = new Person('子供',20,'宝定') 子ども.speak() console.log(子供のアドレス); console.log(子供の年齢); // const children = new child('凉宸', 20, '宝定') // 子どもが言う() 列挙する列挙型は、値が特定の範囲に制限されるシナリオで使用されます。 列挙型週 { SUNDAY = 「日曜日」、 MONDAY = 「月曜日」、 TUESDAY = '火曜日'、 WEDNESDAY = '水曜日'、 木曜日 = '木曜日'、 FRIDAY = 「金曜日」、 SATURDAY = 「土曜日」 } 関数 getProgramme(date: Week): 文字列 { if (date === Week.SUNDAY) { 「日曜日の余暇と娯楽」を返す } そうでない場合 (日付 === Week.MONDAY) { 「月曜日のブログ投稿」を返す } そうでない場合 (date === Week.TUESDAY) { 「火曜日のスプリント」に戻る } そうでない場合 (日付 === Week.WEDNESDAY) { 「水曜日も戦い続ける」 } そうでない場合 (日付 === Week.THURSDAY) { 「木曜日の新着記事」を返す } そうでない場合 (日付 === Week.FRIDAY) { 「金曜日は休む準備ができました」を返す } それ以外 { 「土曜日に寝る」を返す } } console.log(getProgramme(Week.THURSDAY)); TypeScript データ型の理解に関するこの記事はこれで終わりです。TypeScript データ型の詳細については、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: 2つのVirtualBox仮想ネットワークをブリッジするLinuxブリッジメソッドの手順
>>: mysqlreplicate を使って MySQL マスタースレーブを素早く構築する方法
導入2日前に見た問題について詳細に書きます。バイトコンピューターがバイナリに基づいていることは誰もが...
目次1. デカルト積現象2. 接続クエリの知識ポイントのまとめ1) 結合クエリとは何ですか? 2) ...
このチュートリアルでは、参考までにMySQL 8.0.19のインストールチュートリアルを共有します。...
背景Navicat は、最高の MySQL 視覚化ツールです。ただし、ビューのインポートとエクスポー...
データベースを作成する右クリック - 新しいデータベースを作成ライブラリ名を入力し、文字セットと並べ...
この記事では、CentOSでのMySQLの完全アンインストールについて記録しています。具体的な内容は...
目次序文ホットチェンジとはCocos Hot アップデートの概要マニフェストプロジェクトリソースとゲ...
目次序文VueUseとは使いやすいおなじみの手ぶれ補正やスロットル機能もありますグローバル状態を共有...
なお、この記事では、単に 20.04 ソースに変更する方法を説明するのではなく、20.04 に基づい...
1. MySQLをダウンロードする1.1 ダウンロードアドレスhttps://downloads.m...
異なるデータベースで DROP TABLE を書く方法1.MySQL 存在する場合はテーブルを削除 ...
1. JDKをインストールする コンピュータの動作桁を確認します。 uname -ar 2017 x...
React コンポーネントのライフサイクル機能とは何ですか?ライフサイクル関数は、ES6 構文クラス...
docker デーモンは通常の TCP ポートではなくホストの Unix ソケットにバインドする必要...
環境に関する声明ホストOS: Cetnos7.9 最小インストールdocker バージョン: 20....