: 프로그래밍 언어에서 변수는 데이터를 저장하는 공간이다
: 변수에 저장되는 데이터는 여러 가지 타입이 있다
ex) 숫자, 문자열, 논리값, 배열, 객체 등
: 서로 다른 타입의 원소를 순서에 맞게 가질 수 있는 특수한 형태의 배열
const testScores: number[] = [90, 85, 78, 92, “88”];const person: [string, number, boolean] = ['Spartan', 25, false]; const person2: [string, number, boolean] = [25, 'Spartan', false]; // 오류!
* 명확하게 관련된 상수 값들을 그룹화하고자 할 때 사용하는 게 좋다
enum은 열거형 데이터 타입number 혹은 string타입의 값만을 할당할 수 있다.readonly는 TypeScript에서 등장한 키워드any 타입은 모든 타입의 슈퍼 타입이다object 타입과 같은 최상위 타입이라고 생각하면 된다let anything: any; anything = 5; // 최초에는 숫자를 넣었지만 anything = 'Hello'; // 문자열도 들어가고요 anything = { id: 1, name: 'John' }; // JSON도 들어가네요
!!! any 타입은 코드의 안정성과 유지 보수성을 저해할 수 있다. 가급적 사용을 하지 않는것이 좋다 !!!
unknown 타입은 any 타입과 비슷한 역할을 하지만 더 안전한 방식으로 동작한다let unknownValue: unknown = '나는 문자열이지롱!'; console.log(unknownValue); // 나는 문자열이지롱! let stringValue: string; stringValue = unknownValue; // 에러 발생! unknownValue가 string임이 보장이 안되기 때문! stringValue = unknownValue as string; console.log(stringValue); // 나는 문자열이지롱!
stringValue = unknownValue as string;코드를 Type Assertion(타입 단언)이라고 한다- unkwown 타입의 변수를 다른 곳에서 사용하려면 타입 단언을 통해 타입 보장을 하여 사용할 수 있다
let unknownValue: unknown = '나는 문자열이지롱!'; let stringValue: string; if (typeof unknownValue === 'string') { stringValue = unknownValue; console.log('unknownValue는 문자열이네요~'); } else { console.log('unknownValue는 문자열이 아니었습니다~'); } //결과값 > unknownValue는 문자열이네요~
- typeof 키워드를 이용하여 타입 체크를 미리한 후 unknown 타입의 변수를 string 타입의 변수에 할당할 수 있다
union 은 여러 타입 중 하나를 가질 수 있는 변수를 선언할 때 사용| 연산자를 사용하여 여러 타입을 결합하여 표현한다type StringOrNumber = string | number; // 원한다면 | boolean 이런식으로 타입 추가가 가능해요! function processValue(value: StringOrNumber) { if (typeof value === 'string') { // value는 여기서 string 타입으로 간주됩니다. console.log('String value:', value); } else if (typeof value === 'number') { // value는 여기서 number 타입으로 간주되구요! console.log('Number value:', value); } } processValue('Hello'); processValue(42); //결과값 > String value: Hello // > Number value: 42
많이 배우고 보고 갑니다 ....