Question

When calling a .NET OAuthToken Endpoint the result contains two properties starting with a ".":

{   
    "access_token":"abcde..."
    "expires_in":1209599
    ".expires":"Fri, 16 May 2014..."    <- this
    ".issued":"Fri, 02 May 2014..."     <- this
    ... more properties ...
}

What I like to do is create an interface in TypeScript to handle this result. However I do not know how to declare these two properties with the little dot in front.

export interface Token {
    access_token: string;
    expires_in: number;
    .expires???
    .issued???
}

Any idea?

Était-ce utile?

La solution

Viewing section 3.7.1 of the TypeScript language specification, it looks like property signatures in object literals work about the same as object literal property definitions in JavaScript, meaning a property name can be an identifier, a string literal, or a numeric literal. In other words, you can simply do:

export interface Token {
    access_token: string;
    expires_in: number;
    ".expires": string;
    ".issued": string;
}

Autres conseils

Just use quoted interface members :

interface Token {
    access_token: string;
    expires_in: number;
    '.expires': number;
}

var foo:Token;
foo['.expires'] = '123'; // Error 
foo['.expires'] = 123; // okay 
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top