フロント2週目
5893 ワード
を過ぎて
カテゴリ
高再利用コードの作成によく使用されます.
この時ジェニーリックを使ってみましょう.
インタフェースでJENICを使用する方法
変数を宣言または初期化すると、属性、パラメータのデフォルト値、関数の戻り値などもタイプ推定されます.
language serverでこのタイプですよね?間違っています.に知らせる
タイプブレークスルー
開発者はタイプスクリプトよりもタイプをよく知っています.
タイプスクリプトは気にしないでください.
操作DOM API
タイプスクリプトコードの特定のタイプは、他のタイプに適していますか?
enum Answer {
Yes = 'Y',
No = 'N',
}
function askQuestion(answer: string) {
if(answer=='yes')
console.log('정답입니다');
if(answer=='no')
console.log('오답입니다');
}
if(answer == Answer.Yes)
if(answer == Answer.No)
askQuestion('y');
askQuestion('Yes');
このようにすると例外を減らすことができます.カテゴリ
class Person {
constructor() {}
}
JavaScriptはプロトコルタイプに基づく言語です.var user = { name: "hyoseung", age: 20 };
var admin = {};
admin.__proto__ = user;
adminはユーザーを継承します.//클래스 문법
class Person {
public name:string;
private age:number;
}
ジェニーリック高再利用コードの作成によく使用されます.
function logText(text) {
console.log(text);
return text;
}
function logText<T>(text: T):T {
console.log(text);
return text;
}
logText<string>('하이');
各パラメータタイプに異なる実行操作がある場合は、関数を記述する必要があります.function logNumber(num: number) {
console.log(num);
return num;
}
しかし、この場合は同じコードを書くのでメンテナンスが悪い.function logText(text string | number) {
text.
}
問題は、unionタイプでパラメータを取得する場合、タイプの共通部分に近づくしかないということです.この時ジェニーリックを使ってみましょう.
function logText<T>(text: T): T {
console.log(text);
return text;
}
const str = logText<string>('abc');
str.split();
const login = logText<boolean>(True);
呼び出し時にタイプに何が含まれているかを決定する概念インタフェースでJENICを使用する方法
interface Dropdown<T> {
value: T;
selected: boolean;
}
const obj: Dropdown<string> = { value: 'abc', selected: false };
類型推論変数を宣言または初期化すると、属性、パラメータのデフォルト値、関数の戻り値などもタイプ推定されます.
interface Dropdown<T> {
value: T;
title: string;
}
var item: Dropdown<string> = {
value: 'abc', //여기서 문자열이 들어가야 한다고 알려준다
title: 'hello'
}
タイプスクリプトの内部推定valueにはstringが含まれますlanguage serverでこのタイプですよね?間違っています.に知らせる
タイプブレークスルー
開発者はタイプスクリプトよりもタイプをよく知っています.
タイプスクリプトは気にしないでください.
操作DOM API
<div id="app">hi</div>
var div = document.querySelector('div');
div.innerText; // 이럴 때 div가 null일 수도 있어서 에러가 난다
こんな時にできる!var div = document.querySelector('div') as HTMLDivElement;
タイプ互換性タイプスクリプトコードの特定のタイプは、他のタイプに適していますか?
interface Developer {
name: string;
skill: string;
}
interface Person {
name: string;
}
var developer: Developer;
var person: Person;
person = developer; //오른쪽 값이 더 큰 구조의 경우 호환이 된다
var add = function(a: number) {}
var sum = function(a: number, b: number) {}
sum = add;
interface Empty<T> {
}
var empty1: Empty<string>;
var empty2: Empty<number>;
empty1 = empty2
empty2 = empty1 //안에가 비었기 때문에 둘은 호환된다.
interface NotEmpty<T> {
data: T;
}
var Notempty1: Empty<string>;
var Notempty2: Empty<number>; //안의 데이터 타입 자체가 다르므로 둘은 호환이 되지 않는다.
Reference
この問題について(フロント2週目), 我々は、より多くの情報をここで見つけました https://velog.io/@lucky6030/프론트-2주차テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol