To enable Python type checking in Visual Studio Code, you can use the Microsoft extension Pylance[1]. Pylance provides a set of useful features powered with Pyright, the Microsoft static type checking tool. With the extension installed and enabled, you should now have better IntelliSense with typing information when you are calling some package function, for example. For the type checking analysis, it is not enabled by default, you need to configure it by yourself. In your settings.json file, add a new line with the following setting:

{ "python.analysis.typeCheckingMode": "basic" }

The default value for this line is off, meaning the type checking is disabled. You can also set the value to “strict” or “off” depending on your needs[1].

Alternatively, you can use the Python Type Hint extension from the Visual Studio Marketplace[2]. This extension provides type hint auto-completion for Python, with completion items for built-in types, classes, and the typing module. It also estimates the correct type to provide as a completion item and can search Python files in the workspace for type estimation purposes[2].

Another option is to use the Pyright static type checker for Python, which is a full-featured, standards-based static type checker for Python. It is designed for high performance and can be used with large Python source bases. Pyright includes both a command-line tool and an extension for Visual Studio Code[6].

To configure real-time static types checking in VS Code for Python projects, you can set up Python to behave like a static typed language. You can configure Venv and add GitLens extension, then install GitLens extension for VS Code. Next, add these settings in your local settings.json:

{
  "python.linting.mypyEnabled": true,
  "python.linting.mypyArgs": [
    "--ignore-missing-imports",
    "--follow-imports=silent",
    "--show-column-numbers",
    "--allow-untyped-defs",
    "--allow-subclassing-any"
  ]
}

This setup only shows errors when you explicitly add the type of variable or function parameter in your code while still allowing for normal variables[4].

Citations: [1] https://www.emmanuelgautier.com/blog/enable-vscode-python-type-checking [2] https://marketplace.visualstudio.com/items?itemName=njqdev.vscode-python-typehint [3] https://youtube.com/watch?v=hHBp0r4w86g [4] https://dev.to/jodaut/python-type-checking-with-visual-studio-code-46a7 [5] https://stackoverflow.com/questions/45829353/python-type-checking-in-vs-code [6] https://github.com/microsoft/pyright