カテゴリ
3150 ワード
タイプスクリプトは、JavaScriptのクラスも完全にサポートします.
1.プロパティの初期化
typeパラメータを持つことはできません...だからジェニーンリックにはなれない. で返される値のタイプは表示されません.常にクラス内のオブジェクト を返します.
4. Method
1.プロパティの初期化
知っておくべきコンパイルオプション--strictPropertyInitializationオプションがあります.このオプションがtrueの場合
これにより、特定のプログラムの関連コードが初期化されていない場合にエラーが発生します.この問題を解決するには、次の手順に従います.
このように=シンボルを使用して初期化
これにより、コンストラクション関数に初期化コードが配置されます.
こんなふうに!タグ(Non-null assertion)のみで、propertyの値を適合タイプに設定する必要があることを示します.
2. readonly
propertyの前にreadonlyを設定すると、propertyの値はコンストラクション関数にしか設定できません.
3. Constructor
クラスのコンストラクタclass Point {
x: number;
y: number;
// Normal signature with defaults
constructor(x = 0, y = 0) {
this.x = x;
this.y = y;
}
}
このようにパラメータにデフォルト値を指定することもできます.class Point {
// Overloads
constructor(x: number, y: string);
constructor(s: string);
constructor(xs: any, y?: any) {
// TBD
}
}
このように複数のコンストラクション関数を配置するリロードを行うことができます.逆にConstructorは通常の関数とは異なります
propertyの前にreadonlyを設定すると、propertyの値はコンストラクション関数にしか設定できません.
3. Constructor
クラスのコンストラクタclass Point {
x: number;
y: number;
// Normal signature with defaults
constructor(x = 0, y = 0) {
this.x = x;
this.y = y;
}
}
このようにパラメータにデフォルト値を指定することもできます.class Point {
// Overloads
constructor(x: number, y: string);
constructor(s: string);
constructor(xs: any, y?: any) {
// TBD
}
}
このように複数のコンストラクション関数を配置するリロードを行うことができます.逆にConstructorは通常の関数とは異なります
class Point {
x: number;
y: number;
// Normal signature with defaults
constructor(x = 0, y = 0) {
this.x = x;
this.y = y;
}
}
class Point {
// Overloads
constructor(x: number, y: string);
constructor(s: string);
constructor(xs: any, y?: any) {
// TBD
}
}
4. Method
方法については,一般関数と異なる特別な点はない.
5. Interface
このようにして複数のインタフェースを実現することは可能である.
6. Inheritance
継承すると、派生クラスはBaseクラスのすべてのコンテンツを所有します.
ただし、方法オーバーライドを行う際には、少し注意が必要です.
このように方法の形式に合わせなければならない.もちろんこの状態でコンパイルできますが、
これらのコードを実行すると、エラーが発生します.
もちろん無理です.
文字列値「michael」を入力すると、コンパイル後に実行され、よく実行されます.
7. Built-in Type Inheritance
ビルト人タイプを継承したい場合、ES 2015class MsgError extends Error {
constructor(m: string) {
super(m);
}
sayHello() {
return "hello " + this.message;
}
}
let msgError = new MsgError('sss');
msgError.sayHello();
このコードにエラーが発生しました.原因を説明するのは複雑です...
8.StaticメンバーとTypeパラメータ
クラス内の静的メンバーは、実際にはクラス(つまり、関数に直接属するメンバー)であり、クラス内のtypeparameterを参照することはできません.
上のコードのBoxです.defaultValueはslotが1つしか存在しません.でもBoxがdefaultValueを修正するとこれはBoxdefaultValueも修正後に破棄された不良結果を得る.だから許されない.
9. Relationships Between Classes
クラス間のタイプ比較も構造的に行われます.
ちなみに、任意のタイプのクラスと互換性のあるプログラムのクラスはありません.
Reference
この問題について(カテゴリ), 我々は、より多くの情報をここで見つけました
https://velog.io/@usaindream/클래스
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
このようにして複数のインタフェースを実現することは可能である.
6. Inheritance
継承すると、派生クラスはBaseクラスのすべてのコンテンツを所有します.
ただし、方法オーバーライドを行う際には、少し注意が必要です.
このように方法の形式に合わせなければならない.もちろんこの状態でコンパイルできますが、
これらのコードを実行すると、エラーが発生します.
もちろん無理です.
文字列値「michael」を入力すると、コンパイル後に実行され、よく実行されます.
7. Built-in Type Inheritance
ビルト人タイプを継承したい場合、ES 2015class MsgError extends Error {
constructor(m: string) {
super(m);
}
sayHello() {
return "hello " + this.message;
}
}
let msgError = new MsgError('sss');
msgError.sayHello();
このコードにエラーが発生しました.原因を説明するのは複雑です...
8.StaticメンバーとTypeパラメータ
クラス内の静的メンバーは、実際にはクラス(つまり、関数に直接属するメンバー)であり、クラス内のtypeparameterを参照することはできません.
上のコードのBoxです.defaultValueはslotが1つしか存在しません.でもBoxがdefaultValueを修正するとこれはBoxdefaultValueも修正後に破棄された不良結果を得る.だから許されない.
9. Relationships Between Classes
クラス間のタイプ比較も構造的に行われます.
ちなみに、任意のタイプのクラスと互換性のあるプログラムのクラスはありません.
Reference
この問題について(カテゴリ), 我々は、より多くの情報をここで見つけました
https://velog.io/@usaindream/클래스
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
ビルト人タイプを継承したい場合、ES 2015
class MsgError extends Error {
constructor(m: string) {
super(m);
}
sayHello() {
return "hello " + this.message;
}
}
let msgError = new MsgError('sss');
msgError.sayHello();
このコードにエラーが発生しました.原因を説明するのは複雑です...8.StaticメンバーとTypeパラメータ
クラス内の静的メンバーは、実際にはクラス(つまり、関数に直接属するメンバー)であり、クラス内のtypeparameterを参照することはできません.
上のコードのBoxです.defaultValueはslotが1つしか存在しません.でもBoxがdefaultValueを修正するとこれはBoxdefaultValueも修正後に破棄された不良結果を得る.だから許されない.
9. Relationships Between Classes
クラス間のタイプ比較も構造的に行われます.
ちなみに、任意のタイプのクラスと互換性のあるプログラムのクラスはありません.
Reference
この問題について(カテゴリ), 我々は、より多くの情報をここで見つけました
https://velog.io/@usaindream/클래스
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
クラス間のタイプ比較も構造的に行われます.
ちなみに、任意のタイプのクラスと互換性のあるプログラムのクラスはありません.
Reference
この問題について(カテゴリ), 我々は、より多くの情報をここで見つけました https://velog.io/@usaindream/클래스テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol