Angular 7 Add an extension method to primitives
up vote
0
down vote
favorite
I would like to add few methods to primitives.
I have the following file:
string-extension.ts:
interface String {
isNullOrEmpty(this: string): boolean;
}
String.prototype.isNullOrEmpty = function (this: string): boolean {
return !this;
};
I have a component which has the following code:
constructor () {
let a = "asd";
alert(a.isNullOrEmpty());
}
no import is added at the top.
When I run the client, it crashes on that line.
a.isNullOrEmpty is not a function
When I inspect the code, i see that my string-extension.ts file wasn't included there.
I am very familiar with the concept in C# but im not quite familiar with it in TypeScript, so if you need more info, ill provide.
Thanks.
angular extension-methods typescript-typings angular7
add a comment |
up vote
0
down vote
favorite
I would like to add few methods to primitives.
I have the following file:
string-extension.ts:
interface String {
isNullOrEmpty(this: string): boolean;
}
String.prototype.isNullOrEmpty = function (this: string): boolean {
return !this;
};
I have a component which has the following code:
constructor () {
let a = "asd";
alert(a.isNullOrEmpty());
}
no import is added at the top.
When I run the client, it crashes on that line.
a.isNullOrEmpty is not a function
When I inspect the code, i see that my string-extension.ts file wasn't included there.
I am very familiar with the concept in C# but im not quite familiar with it in TypeScript, so if you need more info, ill provide.
Thanks.
angular extension-methods typescript-typings angular7
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
I would like to add few methods to primitives.
I have the following file:
string-extension.ts:
interface String {
isNullOrEmpty(this: string): boolean;
}
String.prototype.isNullOrEmpty = function (this: string): boolean {
return !this;
};
I have a component which has the following code:
constructor () {
let a = "asd";
alert(a.isNullOrEmpty());
}
no import is added at the top.
When I run the client, it crashes on that line.
a.isNullOrEmpty is not a function
When I inspect the code, i see that my string-extension.ts file wasn't included there.
I am very familiar with the concept in C# but im not quite familiar with it in TypeScript, so if you need more info, ill provide.
Thanks.
angular extension-methods typescript-typings angular7
I would like to add few methods to primitives.
I have the following file:
string-extension.ts:
interface String {
isNullOrEmpty(this: string): boolean;
}
String.prototype.isNullOrEmpty = function (this: string): boolean {
return !this;
};
I have a component which has the following code:
constructor () {
let a = "asd";
alert(a.isNullOrEmpty());
}
no import is added at the top.
When I run the client, it crashes on that line.
a.isNullOrEmpty is not a function
When I inspect the code, i see that my string-extension.ts file wasn't included there.
I am very familiar with the concept in C# but im not quite familiar with it in TypeScript, so if you need more info, ill provide.
Thanks.
angular extension-methods typescript-typings angular7
angular extension-methods typescript-typings angular7
edited Nov 9 at 17:20
Goncalo Peres
8511311
8511311
asked Nov 8 at 11:27
Ori Refael
1,20821643
1,20821643
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
up vote
1
down vote
accepted
first, create global .d.ts.
file to set up the signature.
global.d.ts.
export {}; // this file needs to be a module
declare global {
interface String {
isNullOrEmpty(this: string): boolean;
}
}
string-extension.ts:
export {}; // this file needs to be a module
String.prototype.isNullOrEmpty = function (this: string): boolean {
return !this;
};
Now in the main.ts
import the extension
import './string-extension'
src/global.d.ts(1,9): error TS2669: Augmentations for the global scope can only be directly nested in external modules or ambient module declarations.
– Ori Refael
Nov 8 at 12:07
forgot to add theexport {}.
check the update
– Sachila Ranawaka
Nov 8 at 12:13
yeah. saw that too in someone's answer and it worked. thanks alot
– Ori Refael
Nov 8 at 12:16
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
1
down vote
accepted
first, create global .d.ts.
file to set up the signature.
global.d.ts.
export {}; // this file needs to be a module
declare global {
interface String {
isNullOrEmpty(this: string): boolean;
}
}
string-extension.ts:
export {}; // this file needs to be a module
String.prototype.isNullOrEmpty = function (this: string): boolean {
return !this;
};
Now in the main.ts
import the extension
import './string-extension'
src/global.d.ts(1,9): error TS2669: Augmentations for the global scope can only be directly nested in external modules or ambient module declarations.
– Ori Refael
Nov 8 at 12:07
forgot to add theexport {}.
check the update
– Sachila Ranawaka
Nov 8 at 12:13
yeah. saw that too in someone's answer and it worked. thanks alot
– Ori Refael
Nov 8 at 12:16
add a comment |
up vote
1
down vote
accepted
first, create global .d.ts.
file to set up the signature.
global.d.ts.
export {}; // this file needs to be a module
declare global {
interface String {
isNullOrEmpty(this: string): boolean;
}
}
string-extension.ts:
export {}; // this file needs to be a module
String.prototype.isNullOrEmpty = function (this: string): boolean {
return !this;
};
Now in the main.ts
import the extension
import './string-extension'
src/global.d.ts(1,9): error TS2669: Augmentations for the global scope can only be directly nested in external modules or ambient module declarations.
– Ori Refael
Nov 8 at 12:07
forgot to add theexport {}.
check the update
– Sachila Ranawaka
Nov 8 at 12:13
yeah. saw that too in someone's answer and it worked. thanks alot
– Ori Refael
Nov 8 at 12:16
add a comment |
up vote
1
down vote
accepted
up vote
1
down vote
accepted
first, create global .d.ts.
file to set up the signature.
global.d.ts.
export {}; // this file needs to be a module
declare global {
interface String {
isNullOrEmpty(this: string): boolean;
}
}
string-extension.ts:
export {}; // this file needs to be a module
String.prototype.isNullOrEmpty = function (this: string): boolean {
return !this;
};
Now in the main.ts
import the extension
import './string-extension'
first, create global .d.ts.
file to set up the signature.
global.d.ts.
export {}; // this file needs to be a module
declare global {
interface String {
isNullOrEmpty(this: string): boolean;
}
}
string-extension.ts:
export {}; // this file needs to be a module
String.prototype.isNullOrEmpty = function (this: string): boolean {
return !this;
};
Now in the main.ts
import the extension
import './string-extension'
edited Nov 8 at 12:12
answered Nov 8 at 11:38
Sachila Ranawaka
17.7k32043
17.7k32043
src/global.d.ts(1,9): error TS2669: Augmentations for the global scope can only be directly nested in external modules or ambient module declarations.
– Ori Refael
Nov 8 at 12:07
forgot to add theexport {}.
check the update
– Sachila Ranawaka
Nov 8 at 12:13
yeah. saw that too in someone's answer and it worked. thanks alot
– Ori Refael
Nov 8 at 12:16
add a comment |
src/global.d.ts(1,9): error TS2669: Augmentations for the global scope can only be directly nested in external modules or ambient module declarations.
– Ori Refael
Nov 8 at 12:07
forgot to add theexport {}.
check the update
– Sachila Ranawaka
Nov 8 at 12:13
yeah. saw that too in someone's answer and it worked. thanks alot
– Ori Refael
Nov 8 at 12:16
src/global.d.ts(1,9): error TS2669: Augmentations for the global scope can only be directly nested in external modules or ambient module declarations.
– Ori Refael
Nov 8 at 12:07
src/global.d.ts(1,9): error TS2669: Augmentations for the global scope can only be directly nested in external modules or ambient module declarations.
– Ori Refael
Nov 8 at 12:07
forgot to add the
export {}.
check the update– Sachila Ranawaka
Nov 8 at 12:13
forgot to add the
export {}.
check the update– Sachila Ranawaka
Nov 8 at 12:13
yeah. saw that too in someone's answer and it worked. thanks alot
– Ori Refael
Nov 8 at 12:16
yeah. saw that too in someone's answer and it worked. thanks alot
– Ori Refael
Nov 8 at 12:16
add a comment |
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53206823%2fangular-7-add-an-extension-method-to-primitives%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown