Skip to content

The inferred type of 'actions' cannot be named without a reference to '../../.yarn/__virtual__/@reduxjs-toolkit-virtual-5ff160901c/4/.yarn/berry/cache/@reduxjs-toolkit-npm-2.2.3-3fa8bcc11c-10c0.zip/node_modules/@reduxjs/toolkit/dist/entities/models'. This is likely not portable. A type annotation is necessary. #58474

@chenhebing

Description

@chenhebing

🔎 Search Terms

yarn pnp or pnpm symlink, A type annotation is necessary.

image

🕗 Version & Regression Information

typescript@5, using yarn berry pnp mode, cannot reference the actions of @reduxjs/toolkit, but there is no problem using typescript@4.9.5.

⏯ Playground Link

No response

💻 Code

import { createEntityAdapter, createSlice } from '@reduxjs/toolkit';

export interface IFileNav {
  id: string
  path: string;
}

const fileNavAdapter = createEntityAdapter<IFileNav>();

const fileNavSlice = createSlice({
  name: 'file_nav',
  initialState: fileNavAdapter.getInitialState(),
  reducers: {
    add: fileNavAdapter.addMany,
    remove: fileNavAdapter.removeMany,
  },
});

export const actions = fileNavSlice.actions;

🙁 Actual behavior

The following error message appears, but the type reference can still be indexed

The inferred type of 'actions' cannot be named without a reference to '../../.yarn/__virtual__/@reduxjs-toolkit-virtual-5ff160901c/4/.yarn/berry/cache/@reduxjs-toolkit-npm-2.2.3-3fa8bcc11c-10c0.zip/node_modules/@reduxjs/toolkit/dist/entities/models'. This is likely not portable. A type annotation is necessary.

🙂 Expected behavior

The type declaration of symlink can be obtained correctly

Additional information about the issue

// .yarnrc.yml

changesetBaseRefs:
  - master
  - origin/master

checksumBehavior: update

conditions:
  USE_SRC:
    default: false

enableColors: true

enableGlobalCache: true

enableStrictSsl: false

nodeLinker: pnp

npmPublishRegistry: 'https://bnpm.byted.org/'

npmRegistryServer: 'https://bnpm.byted.org/'

plugins:
  - path: .yarn/plugins/@yarnpkg/plugin-conditions.cjs
    spec: 'https://raw.githubusercontent.com/nicolo-ribaudo/yarn-plugin-conditions/main/bundles/%40yarnpkg/plugin-conditions.js'

pnpEnableEsmLoader: true

unsafeHttpWhitelist:
  - bnpm.byted.org

yarnPath: .yarn/releases/yarn-4.2.1.cjs

// tsconfig.json

{
  "compilerOptions": {
    // Type Checking
    "strict": true,
    "strictPropertyInitialization": false,
    "exactOptionalPropertyTypes": true,
    "noFallthroughCasesInSwitch": true,
    "noImplicitOverride": true,
    "noImplicitReturns": true,
    "noPropertyAccessFromIndexSignature": true,
    // Modules
    "allowArbitraryExtensions": true,
    "baseUrl": ".",
    "module": "ES2022",
    "moduleResolution": "Bundler",
    "resolveJsonModule": true,
    // Emit
    "declaration": true,
    "declarationMap": true,
    "noEmitOnError": true,
    "outDir": "build",
    "removeComments": true,
    "sourceMap": true,
    "stripInternal": true,
    // JavaScript Support
    "allowJs": true,
    // Interop Constraints
    "allowSyntheticDefaultImports": true,
    "esModuleInterop": true,
    // Language and Environment
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "jsx": "preserve",
    "target": "ES2022",
    // Projects
    "composite": true,
    "incremental": true,
    // Output Formatting
    "skipLibCheck": true
  },
  "include": ["client", "server", "protocol"],
  "exclude": ["node_modules", "build"],
  "ts-node": {
    "transpileOnly": true,
    "esm": true,
    "swc": true,
    "require": ["tsconfig-paths/register"],
    "compilerOptions": {
      "module": "NodeNext",
      "moduleResolution": "NodeNext"
    }
  }
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions