cannot extend Process interface with index.d.ts in typescript
up vote
0
down vote
favorite
I have a barebones project on this github with the following basic structure:
tsconfig.json
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"strict": true,
"esModuleInterop": true
}
}
index.d.ts
declare namespace NodeJS {
export interface Process {
browser: boolean;
}
}
index.ts
const x = process.browser;
package.json
{
"name": "tsc-interface-ext",
"version": "0.0.0",
"main": "index.ts",
"license": "MIT",
"devDependencies": {
"@types/node": "^10.12.5",
"tslint": "^5.11.0",
"typescript": "^3.1.6"
}
}
But in spite of the index.d.ts
file, Typescript still returns an error saying [ts] Property 'browser' does not exist on type 'Process'.
I thought that the index.d.ts
would add the necessary extension on a project-wide basis, but apparently not.
The hack is related to the fact that nextjs
appends a browser property to the process and does a couple other wacky things that require polyfills to the server's global namespace, which runs into the same isuse.
Does anyone know how to accomplish this sort of interface-extending within a project? Thanks!
typescript
add a comment |
up vote
0
down vote
favorite
I have a barebones project on this github with the following basic structure:
tsconfig.json
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"strict": true,
"esModuleInterop": true
}
}
index.d.ts
declare namespace NodeJS {
export interface Process {
browser: boolean;
}
}
index.ts
const x = process.browser;
package.json
{
"name": "tsc-interface-ext",
"version": "0.0.0",
"main": "index.ts",
"license": "MIT",
"devDependencies": {
"@types/node": "^10.12.5",
"tslint": "^5.11.0",
"typescript": "^3.1.6"
}
}
But in spite of the index.d.ts
file, Typescript still returns an error saying [ts] Property 'browser' does not exist on type 'Process'.
I thought that the index.d.ts
would add the necessary extension on a project-wide basis, but apparently not.
The hack is related to the fact that nextjs
appends a browser property to the process and does a couple other wacky things that require polyfills to the server's global namespace, which runs into the same isuse.
Does anyone know how to accomplish this sort of interface-extending within a project? Thanks!
typescript
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
I have a barebones project on this github with the following basic structure:
tsconfig.json
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"strict": true,
"esModuleInterop": true
}
}
index.d.ts
declare namespace NodeJS {
export interface Process {
browser: boolean;
}
}
index.ts
const x = process.browser;
package.json
{
"name": "tsc-interface-ext",
"version": "0.0.0",
"main": "index.ts",
"license": "MIT",
"devDependencies": {
"@types/node": "^10.12.5",
"tslint": "^5.11.0",
"typescript": "^3.1.6"
}
}
But in spite of the index.d.ts
file, Typescript still returns an error saying [ts] Property 'browser' does not exist on type 'Process'.
I thought that the index.d.ts
would add the necessary extension on a project-wide basis, but apparently not.
The hack is related to the fact that nextjs
appends a browser property to the process and does a couple other wacky things that require polyfills to the server's global namespace, which runs into the same isuse.
Does anyone know how to accomplish this sort of interface-extending within a project? Thanks!
typescript
I have a barebones project on this github with the following basic structure:
tsconfig.json
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"strict": true,
"esModuleInterop": true
}
}
index.d.ts
declare namespace NodeJS {
export interface Process {
browser: boolean;
}
}
index.ts
const x = process.browser;
package.json
{
"name": "tsc-interface-ext",
"version": "0.0.0",
"main": "index.ts",
"license": "MIT",
"devDependencies": {
"@types/node": "^10.12.5",
"tslint": "^5.11.0",
"typescript": "^3.1.6"
}
}
But in spite of the index.d.ts
file, Typescript still returns an error saying [ts] Property 'browser' does not exist on type 'Process'.
I thought that the index.d.ts
would add the necessary extension on a project-wide basis, but apparently not.
The hack is related to the fact that nextjs
appends a browser property to the process and does a couple other wacky things that require polyfills to the server's global namespace, which runs into the same isuse.
Does anyone know how to accomplish this sort of interface-extending within a project? Thanks!
typescript
typescript
asked Nov 11 at 9:39
mikesol
466316
466316
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
up vote
0
down vote
TypeScript ignores index.d.ts
when index.ts
exists because it assumes that index.d.ts
might be generated from index.ts
and index.ts
is more up-to-date. Renaming index.d.ts
to another name (for example, declarations.d.ts
) will fix the problem.
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
0
down vote
TypeScript ignores index.d.ts
when index.ts
exists because it assumes that index.d.ts
might be generated from index.ts
and index.ts
is more up-to-date. Renaming index.d.ts
to another name (for example, declarations.d.ts
) will fix the problem.
add a comment |
up vote
0
down vote
TypeScript ignores index.d.ts
when index.ts
exists because it assumes that index.d.ts
might be generated from index.ts
and index.ts
is more up-to-date. Renaming index.d.ts
to another name (for example, declarations.d.ts
) will fix the problem.
add a comment |
up vote
0
down vote
up vote
0
down vote
TypeScript ignores index.d.ts
when index.ts
exists because it assumes that index.d.ts
might be generated from index.ts
and index.ts
is more up-to-date. Renaming index.d.ts
to another name (for example, declarations.d.ts
) will fix the problem.
TypeScript ignores index.d.ts
when index.ts
exists because it assumes that index.d.ts
might be generated from index.ts
and index.ts
is more up-to-date. Renaming index.d.ts
to another name (for example, declarations.d.ts
) will fix the problem.
answered Nov 11 at 13:52
Matt McCutchen
13.1k719
13.1k719
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
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%2f53247458%2fcannot-extend-process-interface-with-index-d-ts-in-typescript%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