TYPESCRIPT

신홍석·2022년 7월 3일
0

static-checking: typescript은 프로그램이 실행되기 전에 검사과정을 거친다.
typed superset of javascript

const message = 'Abstract Study'

//1. 첫번째
message.toLowerCase()
//2. 두번째
message()
  • 1번을 실행시키면 모두 lowercase 로 출력이 된다, 하지만 2번을 실행시키면 에러가 뜬다. message는 함수가 아니기 때문이다. 이런 에러를 방지하기 위해서 타입스크립트를 쓴다.

  • string 이나 number 등 몇몇 값 들은 typeof 를 사용해서 어떠한 타입인지 알아낼 수 있지만, function은 typeof 로 타입 값을 찾을 수 없음.

Static type-checking

  • static types describe the shapes and behaviors of what our values will be when we run our programs.
const message = 'hello!';

message();

This expression is not callable.
Type 'String' has no call signatures.

ex1)

new Date() returns date
Date() returns string

ex2) Readonly Properties

interface Point {
	readonly x: number;
    readonly y: number;
}

let p1: Point = { x: 10, y: 20}
p1.x = 5;// error!

cannot assign to 'x' because it is a read-only property

let a: number[] = [1,2,3,4]
let ro: ReadonlyArray<number> = a

ro[0] = 12; // error
Index signature in type "readonly number[]' only permits reading

readonly vs const

best way to remember readonly vs const?

  • whether you're using it on a variable or a property.
  • variables use const, whearas properties use readonly

Class Types

interface ClockInterface{
	currentTime: Date;
}

class Clock implements ClockInterface{
	currentTime: Date = new Date()
    constructor(h:number, m: number){
    
    }
}

typescript abstract

interface Dimension{
	length: number;
    circum: number;
}

abstract class Shape{
	abstract dimensions() : Dimensions;
    draw() : void{
    
    }
}

class Circle extends Shape {
	constructor() {
    	super();
        
    }
    public dimensions(): Dimensions {
    	
        const dim: Dimensions =  {
        	radius:0,
            circum:0,
        }
        return dim;
    }
}
profile
백엔드 개발자 공부

0개의 댓글