ウェブサイト検索
私はこのTypeScriptの継承階層を持っています。Personは基底の抽象クラスです。一方、ManクラスとWomanクラスは抽象Personクラスの子クラスです。抽象クラスPersonには、_childrenというプロパティがあり、これは抽象Personオブジェクトの配列です。私はWomanクラスとManクラスに子供の配列を追加する必要があります。しかし、Personオブジェクトは抽象クラスなので配列に追加できないと思います。その代わりに、子クラスであるManやWomanのオブジェクトを配列に追加する必要があります。この構文はどのようになるか教えていただけますか?つまり、ManとWomanオブジェクトを含めることができる配列が必要です。
これをしようとするとき:
private children: Person[] = [this.womanA, this.manB, this.womanD, this.manC]; private manD: Man = new Man(this.children, 'Lyngby'); 続きを読む →このスニペットを確認してください:
interface Foo { id: string; } const fooFunc = (arr: Foo[]): Foo[] => arr .map((item: Foo): Foo | null => { const someCheck = true; if (someCheck) { return { id: '123' }; } return null; }) .filter((item: Foo | null) => item !== null);またはこちらをクリックして、TS Playground のリンクにアクセスしてください: https://pnda.me/TSPlaygroundFilterExample
型 null は型 Foo
続きを読む →
私はJS/JSON.stringifyのこの機能について悩んでいます:
const v = []; v.foo = 5; v.start = true; console.log(JSON.stringify({value: v}));これをコンソールで確認できます:
{"value":[]}だから作りたい型は配列ではなくオブジェクトです:
export const acceptsObjectsButNotArrays = 続きを読む →
私は次のようなテキストエリアを持っています..
<textarea [(ngModel)]="message" id="commentBox" placeholder="Add your comment here..."></textarea>そして、外部APIからユーザーを取り込むリストがあります、このように…
<div class="mention-container"> 続きを読む →以下のコードでは、私が望むのは、インターフェース内で定義された関数で使用されるのと同じ型を引数に持つことを強制するインターフェースを持つことです。これまでは簡単で、ジェネリック型を使ってそれを達成することができます:
interface Interface<T> { arg: T func: (_: T) => string }私が次に望むのは、それらのインターフェースの配列を持つことができ、その間で異なる型を持つことができるようにすることです(ただし、1つのインターフェース内の引数と関数の間で同じ型を持つことは確保する)。ここにそのような引数を取る関数があります:
const mainFunc = <T>( items: Array<Interface<T>> ) => { items.forEach(({ func, arg }) => func(arg)) } 続きを読む →
JSでは、次のように指定された配列から新しい変数に値を渡すエレガントな方法があります:
let [a, b, c] = [1, 2, 3]; // a = 1, b = 2, c = 3AngularのHTML構文を使って、同じようにエレガントな方法を実現できるかどうか考えていました。例えば次のように:
// TS this.obs1$: Observable<ObsType1> = ...; this.obs2$: Observable<ObsType2& 続きを読む →私は2つのクラス FileInfo と UploadFileInfo を持っています。後者は前者を拡張しています。私のメソッドでは、オブジェクトを配列 contents に追加しますが、どちらの型でも可能です。
public contents: Array<FileInfo | UploadFileInfo> = new Array<FileInfo | UploadFileInfo>();そして私のHTMLテンプレートでは、ngForを使ってコンテンツを繰り返し処理します。
私の問題は、HTMLテンプレートで型チェックを実行できず、UploadFileInfo のメンバーが anonymous であることに関してエラーが出ていることです。どうやら、このテンプレートは最初の FileInfo を参照型とし
続きを読む →
サーバーから取得しているオブジェクトの配列を子コンポーネントに渡そうとしていますが、なぜうまくいかないのか理解できません。ここで何を見落としているのでしょうか?
親コンポーネント TS
private movieListSub: Subscription; private movies: UserMovie[] = []; constructor( private movieService: UserMovieService) { } ngOnInit() { 続きを読む →私は TypeScript 3.0.3 を使用しており、これは期待通りに動作します:
interface IndefiniteNestedArray<T> extends Array<T | IndefiniteNestedArray<T>> {} let arr: IndefiniteNestedArray<string> = [ [ [ [9001] ] ] ]; // 4 levels // // type 'number[][][][]' is not assignable to type 'IndefiniteNestedArray<string>'. //しかしなぜか、一次元深くネストすると、明らかにそうでないはずなのに型エラーが消えます…
interface IndefiniteNestedArray<T> extends Array<T | IndefiniteNestedArray<T&g 続きを読む →
私は次のHTMLを持っています(異なるデータで数回繰り返されています)、これはcheerioを使って読み込んだドキュメント内にあります:
<li class="wprm-recipe-ingredient"> <span class="wprm-recipe-ingredient-amount">1</span> <span class="wprm-recipe-ingredient-unit">pound</span> <span class="wprm-recipe-ingredient-n 続きを読む →