오늘 학습 내용
interface LabeledValue {
label: string;
}
function printLabel(labelObj: LabeledValue){
console.log(labelObj)
}
const obj = { size : 10 , label : "Size 10 Object"}
printLabel(obj) // { size : 10, label : "Size 10 Object" }
printLabel 함수에서 label 프로퍼티가 string 타입인지만 확인하기 때문에 size란 추가 프로퍼티가 존재해도 오류를 검출하지 않는다.
printLabel({ size: 10, label: "Size 10 Object" }) // 오류 ...!
위와 같은 형태인 객체 리터럴로 인수를 전달할 때 초과 프로퍼티 검사를 받게된다.
interface LabelType{
label: string;
}
printLabel({ size: 10, label: "Size 10 Object" } as LabelType)
객체 리터럴 뒤에 as와 인터페이스를 사용하면 기존에 객체 리터럴 형식에 오류가 나왔던 부분을 제거 가능.
그러나 인터페이스에 정의된 프로퍼티 이외의 값이 추가될 거라고 확신한다면 아래와 같이 문자열 인덱스 서명을 추가하는 것이 더 나은 방법
interface LabelType{
label: string;
[propName : string] : any;
}
printLabel({ size: 10, label: "Size 10 Object" } as LabelType)
변수는 const
프로퍼티는 readonly
ORDER BY ~~~ LIMIT ~~
WHERE절에만 조건을 작성할 수 있는게 아니라 ORDER BY에서도 조건을 작성할 수 있다는점 인지.
from 이나 join 뒤에 as를 활용해 가독성 높이기
SELECT ins.animal_id, ins.datetime FROM animal_ins as ins;
출처: https://blog.edit.kr/entry/Left-join-and-Left-outer-join-in-SQL-Server