programing

유형 스크립트의 어레이 VS 유형[ ]

javajsp 2023. 3. 25. 09:54

유형 스크립트의 어레이 VS 유형[ ]

속성 유형은 어레이일 때 두 가지 방법으로 정의할 수 있는 것으로 알고 있습니다.

property_name: type

여기서 type은 다음 중 하나입니다.

Array<string>, Array<MyType>, etc. (e.g. let prop1: Array<string>)

그리고.

string[], MyType[], etc. (e.g. let prop1: string[])

두 경우의 차이는 무엇입니까?아니면 제가 뭔가 오해를 하고 있는 걸까요(<<고객명>>님이 캐스팅에 사용되었을 가능성이 있습니다).

질문이 중복으로 표시되어 있기 때문에 편집에 관한 다른 질문이 있는 것은 알고 있습니다만, 투고 전에 확인했습니다만, 다른 []VS <>가 아니라, 타입 「any」에 관한 것이었습니다.

의미상의 차이는 없습니다.

전혀 차이가 없다. Type[]의 배열의 줄임말 구문입니다.Type.Array<Type>범용 구문입니다.그들은 완전히 같다.

핸드북은 여기에 예를 제시합니다.이는 다음과 같습니다.

function loggingIdentity<T>(arg: T[]): T[] {
    console.log(arg.length);
    return arg;
}

또는 다음 중 하나를 선택합니다.

function loggingIdentity<T>(arg: Array<T>): Array<T> {
    console.log(arg.length);
    return arg;
}

다음은 몇 가지 릴리즈 노트의 인용문입니다.

구체적으로는number[]의 줄임말입니다.Array<number>,처럼Date[]의 줄임말이다Array<Date>.

에 대해서readonly유형 수식자

TypeScript 3.4에서는readonly유형 수식자.정밀도:

readonly유형 한정자는 어레이 유형 및 태플 유형의 구문에만 사용할 수 있습니다.

let err2: readonly Array<boolean>; // error!    
let okay: readonly boolean[]; // works fine

다음 선언은 다음과 같습니다.readonly boolean[]:

let okay2: ReadonlyArray<boolean>;

고정 길이 배열을 정의할 때는 차이가 있습니다.고정 길이 배열을 정의할 수 없습니다.Array<>, 다음의 단축 구문을 사용할 필요가 있습니다.

const myFunc1 = (arg: [string, number, boolean]) => {
  console.log(arg);
};
myFunc1(["hello world", 123, true]);

// error: TS2314: Generic type 'Array ' requires 1 type argument(s).
const myFunc2 = (arg: Array<string, number, boolean>) => {
  console.log(arg);
};
myFunc2(["hello world", 123, true])

어쩌면 유용할지도 몰라!

interface IPrintArray<Type> {
   list: Type[]
}

function printArray<Type> (props: IPrintArray<Type>) {
  return <div>  </div>
}

언급URL : https://stackoverflow.com/questions/36842158/arraytype-vs-type-in-typescript